$(function() {
    buttenControl();
    /*停车区列表显示*/
    $('#tb_ads').bootstrapTable({
        method: 'GET',                      //请求方式（*）
        url:projectPath+  "/base/parking/areas/list",//请求后台的URL（*）
        contentType: 'application/x-www-form-urlencoded',
        toolbar: '#toolbar',                //工具按钮用哪个容器
        striped: true,                      //是否显示行间隔色
        cache: true,                       //是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
        pagination: true,                   //是否显示分页（*）
        sortable: false,                     //是否启用排序
        sortOrder: "asc",                   //排序方式
        search:false,
        queryParams: queryParams,//传递参数（*）
        sidePagination: "server",           //分页方式：client客户端分页，server服务端分页（*）
        pageNumber: 1,                       //初始化加载第一页，默认第一页
        pageSize: 10,                       //每页的记录行数（*）
        pageList: [10,20,50],        //可供选择的每页的行数（*）
        strictSearch: true,
        clickToSelect: true,                //是否启用点击选中行
        uniqueId: "id",
        showColumns: true,                  //是否显示所有的列
        showRefresh: true,                  //显示刷新按钮
        showToggle: true,
        minimumCountColumns: 2,             //最少允许的列数
        singleSelect:true,
        // height:500,
        paginationPreText: "上一页",
        paginationNextText: "下一页",
        columns: [
            {field: 'check', checkbox: true},
            {field: '', title: '序号', align: 'left', formatter: function (value, row, index) {
                var pageSize=$('#tb_ads').bootstrapTable('getOptions').pageSize;//通过表的#id 可以得到每页多少条
                var pageNumber=$('#tb_ads').bootstrapTable('getOptions').pageNumber;//通过表的#id 可以得到当前第几页
                return pageSize * (pageNumber - 1) + index + 1;    //返回每条的序号： 每页条数 * （当前页 - 1 ）+ 序号
            }},
            {field: 'uuid', title: '主键', align: 'center', visible:false},
            {field: 'name', title: '停车区名称', align: 'center',formatter: function (value, row, index) {
                return "<div style='white-space: nowrap;'><a href='javascript:;' onclick='parkarea_detail(\""+row.uuid+"\")'>" + value + "</a></div>";
            }},
            {field: 'code', title: '停车区编码', align: 'center',formatter: function (value, row, index) {
                return "<div style='white-space: nowrap;'>" + value + "</div>";
            }},
            {field: 'stationName', title: '所属站名称', align: 'center',formatter: function (value, row, index) {
                return "<div style='white-space: nowrap;'>" + value + "</div>";
            }},
            {field: 'stationAddress', title: '所属站地址', align: 'center',formatter: function (value, row, index) {
                return "<div style='white-space: nowrap;'>" + value + "</div>";
            }},
            {field: 'openat', title: '营业开始时间', align: 'center',formatter: function (value, row, index) {
                return "<div style='white-space: nowrap;'>" + value + "</div>";
            }},
            {field: 'closeat', title: '营业关闭时间', align: 'center',formatter: function (value, row, index) {
                return "<div style='white-space: nowrap;'>" + value + "</div>";
            }},
            {field: 'parkingfee', title: '收费标准', align: 'center',formatter: function (value, row, index) {
                return "<div style='white-space: nowrap;'>" + value + "</div>";
            }},
            {field: 'parkingdesc', title: '停车区描述', align: 'center',formatter: function (value, row, index) {
                return "<div style='white-space: nowrap;'>" + value + "</div>";
            }}
        ],
        responseHandler: function (obj) {
            return {
                total:obj.data.total,
                rows:obj.data.data
            }
        }
    });
    /*页面查询功能*/
    $("#btnQuery").click(function(){
        $('#tb_ads').bootstrapTable('refresh', {url: projectPath+"/base/parking/areas/list",pageNumber:1});
    });
    // 充电站条件按钮查询
    $("#btnQueryStation").click(function(){
        $('#station_table').bootstrapTable('refresh', {url: projectPath+"/base/stations/list"});
    });
});

/*update fanchao 2018-3-27 充电站关联 对停车位新增的回显功能*/
// 充电站查询
$("#stationClick").on("click",function () {
    formValidator();
    $(".bootstrapValidators").data('bootstrapValidator').destroy();
    $('.bootstrapValidators').data('bootstrapValidator', null);
    var index = layer.open({
        type: 1,
        title: "搜索充电站",
        shadeClose: true,
        shade: 0.3,
        area: ['90%', '100%'],
        skin: 'layui-layer-rims',
        content: $(".station_detail"),
        closeBtn:1,
        shadeClose:false,
        fixed:false,
        resize:true,
        maxmin:true,
        btn:['确定','关闭'],
        success:function(){
            getStationTab();
        },
        yes:function(){
            var uuid = "";
            var p_n = $('#station_table').bootstrapTable('getData');
            if (p_n != null && p_n.length > 0) {
                var len = $('#station_table').bootstrapTable('getData').length;
                for (var i = 0; i < len; i++) {
                    if ($('#station_table').bootstrapTable('getData')[i].check == true) {
                        uuid = $('#station_table').bootstrapTable('getData')[i].uuid;
                        stationname = $('#station_table').bootstrapTable('getData')[i].stationname;
                        stationaddress = $('#station_table').bootstrapTable('getData')[i].address;
                    };
                };
                if (uuid != '' && uuid != null) {
                    $("#stationSearch").val(stationname);
                    $("#address").val(stationaddress);
                    $("#stationSearch").attr("datauuid",uuid);
                } else {
                    layerAlert.errorMessage("您的选择为空");
                }
            };
            layer.close(index);
        },
        btn2:function(){

        },
        cancel:function () {

        }
    });
});
function getStationTab() {
    $('#station_table').bootstrapTable({
        method: 'POST',                      //请求方式（*）
        url: projectPath + "/base/stations/list",
        contentType: 'application/x-www-form-urlencoded',
        //toolbar: '#toolbar',                //工具按钮用哪个容器
        striped: true,                      //是否显示行间隔色
        cache: false,                       //是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
        pagination: true,                   //是否显示分页（*）
        sortable: false,                     //是否启用排序
        sortOrder: "asc",                   //排序方式
        search: false,
        queryParams: queryStationTabParams,//传递参数（*）
        sidePagination: "server",           //分页方式：client客户端分页，server服务端分页（*）
        pageNumber: 1,                       //初始化加载第一页，默认第一页
        pageSize: 10,                       //每页的记录行数（*）
        pageList: [10, 15, 20],        //可供选择的每页的行数（*）
        strictSearch: true,
        clickToSelect: true,                //是否启用点击选中行
        uniqueId: "id",
        // showColumns: true,                  //是否显示所有的列
        // showRefresh: true,                  //显示刷新按钮
        // showToggle: true,
        minimumCountColumns: 12,             //最少允许的列数
        singleSelect: true,
        paginationPreText: "上一页",
        paginationNextText: "下一页",
        columns: [
            {field: 'check', checkbox: true},
            {field: '', title: '序号', align: 'center', formatter: function (value, row, index) {
                var pageSize = $('#station_table').bootstrapTable('getOptions').pageSize;//通过表的#id 可以得到每页多少条
                var pageNumber = $('#station_table').bootstrapTable('getOptions').pageNumber;//通过表的#id 可以得到当前第几页
                return pageSize * (pageNumber - 1) + index + 1;    //返回每条的序号： 每页条数 * （当前页 - 1 ）+ 序号
            }},
            {field: 'uuid', title: '主键', align: 'center', visible: false},
            {field: 'stationname', title: '充电站名称', align: 'center', formatter: function (value, row, index) {
                return '<div style="white-space: nowrap;">' + value + '</div>';}
            },
            {field: 'stationno', title: '站编码', align: 'center', formatter: function (value, row, index) {
                return "<div style='white-space: nowrap;'>" + value + "</div>";
            }},
            {field: 'isthird', title: '是否第三方', align: 'center', formatter: function (value, row, index) {
                if (value == "0" || value == "1") {
                    return "<div style='white-space: nowrap;'>否</div>";
                } else {
                    return "<div style='white-space: nowrap;'>是</div>";
                };
            }},
            {field: 'lat', title: '经纬度', align: 'center', formatter: function (value, row, index) {
                return (row.lat + "/" + row.lng);
            }},
            {field: 'stationtype', title: '站类型', align: 'center', formatter: function (value, row, index) {
                if (row.isthird == 0 || row.isthird == 1) {
                    switch (value) {
                        //1高速,2城市公共,3单位内部,4公交,5其他,6出租车，99岸电
                        case 1:
                            value = "高速"
                            break;
                        case 2:
                            value = "城市公共"
                            break;
                        case 3:
                            value = "单位内部"
                            break;
                        case 4:
                            value = "公交"
                            break;
                        case 5:
                            value = "其他"
                            break;
                        case 6:
                            value = "出租车"
                            break;
                        case 99:
                            value = "岸电"
                            break;
                        default:
                            value = "其他"
                    }
                } else {
                    switch (value) {
                        //(1公共,50个人,100公交专用,101环卫专用,102物流专用,103出租车专用,255其他,99岸电)；
                        case 1:
                            value = "公共"
                            break;
                        case 50:
                            value = "个人"
                            break;
                        case 100:
                            value = "公交专用"
                            break;
                        case 101:
                            value = "环卫专用"
                            break;
                        case 102:
                            value = "物流"
                            break;
                        case 103:
                            value = "出租车"
                            break;
                        case 99:
                            value = "岸电"
                            break;
                        default:
                            value = "其他"
                    }
                }
                return "<div style='white-space: nowrap;'>" + value + "</div>";
            }},
            {field: 'stationstatus', title: '站状态', align: 'center', formatter: function (value, row, index) {
                if (value == "2") {
                    return "<div style='white-space: nowrap;'>待投运</div>";
                } else if (value == "3") {
                    return "<div style='white-space: nowrap;'>运行</div>";
                } else if (value == "8") {
                    return "<div style='white-space: nowrap;'>维护</div>";
                } else if (value == "10") {
                    return "<div style='white-space: nowrap;'>停运</div>";
                } else if (value == "11") {
                    return "<div style='white-space: nowrap;'>退运</div>";
                } else {
                    return "";
                }
            }},
            {field: 'servicecode', title: '内外部', align: 'center', formatter: function (value, row, index) {
                if (row.urposetype == 2) {
                    if (value == 1) {
                        return "<div style='white-space: nowrap;'>公用-对外开放</div>";
                    } else {
                        return "<div style='white-space: nowrap;'>公用-对内开放</div>";
                    }
                } else {
                    return "<div style='white-space: nowrap;'>专用-不展示</div>";
                }
            }},
            {field: 'provinceName', title: '省份', align: 'center', visible: false, formatter: function (value, row, index) {
                    return "<div style='white-space: nowrap;'>" + value + "</div>";
            }},
            {field: 'cityName', title: '城市', align: 'center', visible: false, formatter: function (value, row, index) {
                    return "<div style='white-space: nowrap;'>" + value + "</div>";
            }},
            {field: 'provinceOrgName', title: '省组织机构', align: 'center', formatter: function (value, row, index) {
                return "<div style='white-space: nowrap;'>" + value + "</div>";
            }},
            {field: 'cityOrgName', title: '市组织机构', align: 'center', formatter: function (value, row, index) {
                return "<div style='white-space: nowrap;'>" + value + "</div>";
            }},
            {field: 'prOrgName', title: '产权单位', align: 'center', formatter: function (value, row, index) {
                return "<div style='white-space: nowrap;'>" + value + "</div>";
            }},
            {field: 'managerOrgName', title: '运维单位', align: 'center', formatter: function (value, row, index) {
                return "<div style='white-space: nowrap;'>" + value + "</div>";
            }},
            {field: 'rundate', title: '投运时间', align: 'center', visible: false, formatter: function (value, row, index) {
                if (value == "" || value == null) {
                    value = "";
                } else {
                    value = getLocalTime(value);
                };
                return "<div style='white-space: nowrap;>" + value + "</div>";
            }},
            {field: 'createdat', title: '最近更新时间', align: 'center', sortable: true, order: 'desc', visible: false, formatter: function (value, row, index) {
                if (row.updatedat != '' && row.updatedat != null) {
                    value = row.updatedat;
                }
                if (value == "" || value == null) {
                    value = "";
                } else {
                    value = getLocalTime(value);
                }
                return "<div style='white-space: nowrap;'>" + value + "</div>";
            }}
        ],
        responseHandler: function (obj) {
            return {
                total: obj.data.total,
                rows: obj.data.data
            }
        }
    });
};
function queryStationTabParams() {
    var filterinfo = {};
    if ($('#stationName').val() != '') {// 充电站名
        filterinfo.name = $("#stationName").val();
    };
    filterinfo.offset = (this.pageNumber-1)*this.pageSize;
    filterinfo.limit = this.pageSize;
    return filterinfo;
};

// 新增
$("#btnAdd").on("click",function(){
    formValidator();
    $("#stationSearch").prop("disabled",false);
    $("#code").prop("readonly",true);
    var index = layer.open({
        type: 1,
        title: "新增停车区",
        shadeClose: true,
        shade: 0.3,
        area: ['100%', '90%'],
        skin: 'layui-layer-rims',
        content: $(".addParkArea"),
        closeBtn:1,
        shadeClose:false,
        fixed:false,
        resize:true,
        maxmin:true,
        btn:['确定','关闭'],
        yes: function(){
            formValidator();
            var bootstrapValidator = $(".bootstrapValidators").data('bootstrapValidator');
            bootstrapValidator.validate();
            if(!bootstrapValidator.isValid()){
                layerAlert.errorMessage("请填写信息");
                return;
            };
            $.ajax({
                url:projectPath+  "/base/parking/areas/insertOrUpdate",
                type:'POST',
                data:JSON.stringify(getDataForUpdate()),
                contentType:"application/json",
                dataType:"json",
                success:function(data){
                    if(data.code == "0"){
                        layerAlert.successMessage("新建成功","");
                    }else{
                        layerAlert.errorMessage("新建失败");
                    }
                },
                error:function(data){
                    layerAlert.errorMessage("不好意思，数据出错啦！");
                }
            });
            layer.close(index);
            // 重置表单验证
            $("#addParkArea select,input").val("");
            formValidator();
            $(".bootstrapValidators").data('bootstrapValidator').destroy();
            $('.bootstrapValidators').data('bootstrapValidator', null);
        },
        btn2:function(){
            // 重置表单验证
            $("#addParkArea select,input").val("");
            formValidator();
            $(".bootstrapValidators").data('bootstrapValidator').destroy();
            $('.bootstrapValidators').data('bootstrapValidator', null);
        },
        cancel:function(){
            // 重置表单验证
            $("#addParkArea select,input").val("");
            formValidator();
            $(".bootstrapValidators").data('bootstrapValidator').destroy();
            $('.bootstrapValidators').data('bootstrapValidator', null);
        }
    });
});
// 修改
$("#btnRevise").on("click",function(){
    $("#code").prop("readonly",true);
    formValidator();
    $("#stationSearch").prop("disabled",false);
    var uuid = getSelectedDeleteParams();
    if (uuid != '' && uuid != null) {

        /*调用获取站详情数据的方法,并且数据回显*/
        getParkareaInfo(uuid);
        var index = layer.open({
            type: 1,
            title: "修改停车区",
            shadeClose: true,
            shade: 0.3,
            area: ['100%', '90%'],
            skin: 'layui-layer-rims',
            content: $(".addParkArea"),
            closeBtn:1,
            shadeClose:false,
            fixed:false,
            resize:true,
            maxmin:true,
            btn:['确定','关闭'],
            yes: function(){
                formValidator();
                var bootstrapValidator = $(".bootstrapValidators").data('bootstrapValidator');
                bootstrapValidator.validate();
                if(!bootstrapValidator.isValid()){
                    layerAlert.errorMessage("请填写信息");
                    return;
                };
                $.ajax({
                    url:projectPath+  "/base/parking/areas/insertOrUpdate",
                    type:'POST',
                    data:JSON.stringify(getDataForUpdate()),
                    contentType:"application/json",
                    dataType:"json",
                    success:function(data){
                        if(data.code == "0"){
                            layerAlert.successMessage("修改成功","");
                        }else{
                            layerAlert.errorMessage("修改失败");
                        };                    },
                    error:function(data){
                        layerAlert.errorMessage("不好意思，数据出错啦！");
                    }
                });
                layer.close(index);

                // 重置表单验证
                $("#addParkArea select,input").val("");
                formValidator();
                $(".bootstrapValidators").data('bootstrapValidator').destroy();
                $('.bootstrapValidators').data('bootstrapValidator', null);
            },
            btn2:function(){
                // 重置表单验证
                $("#addParkArea select,input").val("");
                formValidator();
                $(".bootstrapValidators").data('bootstrapValidator').destroy();
                $('.bootstrapValidators').data('bootstrapValidator', null);
            },
            cancel:function () {
                // 重置表单验证
                $("#addParkArea select,input").val("");
                formValidator();
                $(".bootstrapValidators").data('bootstrapValidator').destroy();
                $('.bootstrapValidators').data('bootstrapValidator', null);
            }
        });
    } else {
        layerAlert.errorMessage("您的选择为空");
    };
});



// 删除
$("#btnDelete").on("click",function(){
    var uuid = getSelectedDeleteParams();
    //根据停车区判断是否绑定停车位
    if (uuid != '' && uuid != null) {
        $.ajax({
            url:projectPath + "/base/parking/spaces/qryParkingBingChanage?uuid="+uuid,
            type:"POST",
            async:false,
            dataType:"JSON",
            success:function (r) {
                var data = r.data;
                if(data == 1 ){
                    layerAlert.confirmMessage("此停车区已绑定停车位,确定要删除?",projectPath + "/base/parking/areas/del?uuid="+uuid, function(data){
                        if(data.data == 1){
                            layerAlert.successMessage("操作成功","");
                        }else{
                            layerAlert.errorMessage("出错了");
                        };
                    });
                }else if(data == 0){
                    layerAlert.confirmMessage("确定要删除?",projectPath + "/base/parking/areas/del?uuid="+uuid, function(data){
                        if(data.data == 1){
                            layerAlert.successMessage("操作成功","");
                        }else{
                            layerAlert.errorMessage("出错了");
                        };
                    });
                }else if(data == 2){
                    layerAlert.warnMessage("停车区下停车位已经绑定枪,不能删除!");
                }
            },
            error:function () {
                layerAlerterrorMessage("出错了");
            }
        });
    } else {
        layerAlert.errorMessage("您的选择为空");
    };
});

// 导出
$("#btnExport").on("click",function(){
    layer.open({
        type: 1,
        title: "选择导出页数",
        shadeClose: true,
        shade: 0.3,
        move :false,
        area: ['300px', '250px'],
        skin: 'layui-layer-rims',
        content: $(".export_dialog"),
        btn:['确定'],
        closeBtn:1,
        success:function(){
            $('.export_dialog').empty();
            //var endPage=pageCount;
            //var startPage=1;
            var str=[
                '<div class="form-group" style="margin-top:30px;margin-left: 10px;">',
                '<label class="label-width3">起始页:</label><input type="text"  class="form-control" id="start_page" value="1" />',
                '</div>',
                '<div class="form-group" style="margin-top: 10px;margin-left: 10px;">',
                '<label class="label-width3">结束页:</label><input type="text"  class="form-control" id="end_page" value="1000"/>',
                '</div>',
            ].join('');
            $('.export_dialog').append(str);
        },
        close:function(){
            $('.export_dialog').remove(str);
        },
        btn1:function(){
            alert("导出成功");
        }
    });
});

// 详情查看弹出层
function parkarea_detail(uuid){
    $("#stationSearch").prop("disabled",true);
    layer.open({
        type: 1,
        title: "停车区详情",
        shadeClose: true,
        shade: 0.3,
        area: ['100%', '90%'],
        skin: 'layui-layer-rims',
        content: $(".addParkArea"),
        closeBtn:1,
        shadeClose:false,
        fixed:false,
        resize:true,
        maxmin:true,
        btn:['关闭'],
        success:function(){
            getParkareaInfo(uuid);
        },
        cancel:function(){
            clearDetailForm();
        },
        btn1:function () {
            clearDetailForm();
        }
    });
}
/*详情查看数据获取*/
function getParkareaInfo(uuid){
    $.ajax({
        url:projectPath+"/base/parking/areas/detail?id="+uuid,
        type:"POST",
        dataType:"json",
        success:function(data){
            /*调用数据回显的方法*/
            showData(data.data);
        },
        error:function(){
            layerAlert.errorMessage("不好意思，数据出错啦！");
        }
    });
}

var a = function(){
    var thisFun = this;
    this.data_a = "data_a",
        this.setData_a = function () {
            thisFun.data_a = "new_data_a" ;
        },
        this.func = function (){
            console.log(thisFun.data_a);
        },
        this.callback = function (callBack) {
            callBack
        }
}



/*update fanchao 2018-3-27 新增修改提交的验证*/
function formValidator () {
    $(".bootstrapValidators").bootstrapValidator({
        message: 'This value is not valid',
        feedbackIcons: {
            //valid: 'glyphicon glyphicon-ok',
            //invalid: 'glyphicon glyphicon-remove',
            //validating: 'glyphicon glyphicon-refresh'
        },
        fields:{
            parkspacename:{
                validators:{
                    notEmpty: {
                        message: '请填写停车区名称'
                    },
                },
            },
            openat:{
                validators:{
                    notEmpty: {
                        message: '请填写开始时间'
                    }
                },
            },
            closeat:{
                validators:{
                    notEmpty: {
                        message: '请填写结束时间'
                    }
                }
            },
            parkingfee:{
                validators:{
                    notEmpty: {
                        message: '请填写收费标准'
                    }
                }
            },
            stationSearch:{
                validators:{
                    notEmpty: {
                        message: '请填写所属充电站'
                    }
                }
            },
            parkingdesc:{
                validators:{
                    notEmpty: {
                        message: '请填写描述'
                    },
                    stringLength: {//检测长度
                        min: 20,
                        max: 100,
                        message: '长度必须在20-100之间'
                    },
                }
            }
        }
    });
}

/**
 * zhangYiHang 18.3.20
 * 页面按钮控制
 * @constructor
 */
function buttenControl() {
    var urls = paramUrlByButten();
    if(urls.length>0){
        for (var i in urls){
            if('update' == urls[i]){
                $("#btnRevise").show();
            } else if('insert' == urls[i]){
                $("#btnAdd").show();
            }else if('delete' == urls[i]){
                $("#btnDelete").show()
            }else if('excel' == urls[i]){
                $("#btnExport").show()
            }
        }
    }
}

// 清除弹窗内容
function clearDetailForm(){
    $(".addParkArea input,select").val("");
};